package com.wangjie.stackandqueue;

/**
 * @author jieshao
 * @date 2022/5/12 16:48
 *
 * 921. 使括号有效的最少添加
 */
public class Test04 {
    public static void main(String[] args) {
        String s = "(((";
        int res = minAddToMakeValid(s);
        System.out.println(res);
    }

    public static int minAddToMakeValid(String s) {
        // 记录插入的左括号数量
        int left = 0;
        // 记录需要的右括号数量
        int right = 0;
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c == '(') {
                // 需要的右括号 +1
                right++;
            }
            if (c == ')') {
                // 需要的右括号 -1
                right--;
                if (right == -1) {
                    // 需要插入一个左括号
                    left++;
                    right = 0;
                }
            }
        }
        return left + right;
    }
}